Twizer (Normal User)
Newbie
Messaggi: 9
Iscritto: 30/10/2010
|
innanzitutto buon anno a tutti
vi spiego subito il mio problema
scrivendo il codice per un progetto utilizzo due funzioni in due classi differenti, mi spiego meglio
le funzioni nello specifico sono una string_to_int e una int_to_string
completamente slegabili dalle classi che ne richiedono l'uso.
Per questo motivo ho deciso di scrivere un header (basic.h) a parte contenente le due funzioni e poi di farle richiamare dalle classi con una #include
il problema è che basic.h venendo inclusa 2 volte in fase di compilazione mi restituisce un errore di multiple definition...
come è possibile risolvere questo problema?
grazie anticipatamente
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da carlduke:
nel file .h usa le direttive :
Codice sorgente - presumibilmente C/C++ |
#ifndef BASIC_H
#define BASIC_H
....
codice
....
#endif
|
e, sempre nell'header, dichiara solo i prototipi delle funzioni come extern.
Crea un file .cpp, magari con lo stesso nome dell'header per individuarlo (quindi basic.cpp) e li implementa le funzioni vere e proprie. ricordati di includere l'header e di aggiungere il file .cpp al progetto o non verrà trovato il corpo delle funzioni e otterrai di nuovo errore! |
oppure funziona anche
#pragma once |
|
()
Newbie
Messaggi:
Iscritto:
|
nel file .h usa le direttive :
Codice sorgente - presumibilmente C/C++ |
#ifndef BASIC_H
#define BASIC_H
....
codice
....
#endif
|
e, sempre nell'header, dichiara solo i prototipi delle funzioni come extern.
Crea un file .cpp, magari con lo stesso nome dell'header per individuarlo (quindi basic.cpp) e li implementa le funzioni vere e proprie. ricordati di includere l'header e di aggiungere il file .cpp al progetto o non verrà trovato il corpo delle funzioni e otterrai di nuovo errore!
Ultima modifica effettuata da il 01/01/2011 alle 16:06 |
|
Twizer (Normal User)
Newbie
Messaggi: 9
Iscritto: 30/10/2010
|
Grazie ad entrambi, sono riuscito a risolvere
|
|